/*
 * @lc app=leetcode.cn id=73 lang=javascript
 *
 * [73] 矩阵置零
 */

// @lc code=start
/**
 * @param {number[][]} matrix
 * @return {void} Do not return anything, modify matrix in-place instead.
 */
var setZeroes = function (matrix) {
  // let rowLen = matrix.length
  // let colLen = matrix[0].length
  // for (let i = 0; i < rowLen; i++) {
  //   for (let j = 0; j < colLen; j++) {
  //     if (matrix[i][j] === 0) {
  //       matrix[i][j] = true
  //     }
  //   }
  // }
  // for (let i = 0; i < rowLen; i++) {
  //   for (let j = 0; j < colLen; j++) {
  //     if (matrix[i][j] === true) {
  //       matrix[i][j] = 0
  //       for (let k = 0; k < colLen; k++) {
  //         if (matrix[i][k] !== true) {
  //           matrix[i][k] = 0
  //         }
  //       }
  //       for (let k = 0; k < rowLen; k++) {
  //         // console.log(matrix[k])
  //         // console.log(j)
  //         if (matrix[k][j] !== true) {
  //           matrix[k][j] = 0
  //         }
  //       }
  //     }
  //   }
  // }
  const m = matrix.length, n = matrix[0].length;
  const row = new Array(m).fill(false);
  const col = new Array(n).fill(false);
  for (let i = 0; i < m; i++) {
    for (let j = 0; j < n; j++) {
      if (matrix[i][j] === 0) {
        row[i] = col[j] = true;
      }
    }
  }
  for (let i = 0; i < m; i++) {
    for (let j = 0; j < n; j++) {
      if (row[i] || col[j]) {
        matrix[i][j] = 0;
      }
    }
  }
}
// setZeroes([[0,1,2,0],[3,4,5,2],[1,3,1,5]])
// @lc code=end

